/**
 * Project Name:fastPlat
 * File Name:AdminUserService.java
 * Package Name:com.fast.cms.model.service
 * Date:2014年9月10日下午5:06:23
 * Copyright (c) 2014, lsflu@126.com All Rights Reserved.
 *
*/

package com.fast.user.service.admin;

import java.util.List;
import java.util.Map;

import com.fast.base.dao.JpaDao;
import com.fast.base.dao.MybatisDao;
import com.fast.base.db.page.PageView;
import com.fast.base.util.web.ResponseData;
import com.fast.user.dto.TodoListCountDTO;
import com.fast.user.model.admin.AdminUser;
import com.fast.user.web.form.web.AdminForm;

/**
 * ClassName:AdminUserService <br/>
 * 用途:管理员业务接口 <br/>
 * 开发人员：lushuifa  http://lushuifa.iteye.com/
 * 邮箱:lsflu@126.com
 * @version  
 * @since    JDK 1.6
 * @see
 * Date:     2014年9月10日 下午5:06:23 <br/> 	 
 */
public interface AdminUserService extends JpaDao,MybatisDao{
	
	void saveAdminUser(AdminUser adminUser);
	
	AdminUser updateAdminUser(AdminUser adminUser);
	
	// 根据id删除
	void deleteAdminUserById(int id);

	// 查询
	AdminUser getAdminUserById(int id);

	// 查询列表
	List<AdminUser> listAdminUser(String whereHql);
	
	//登录系统
	AdminUser login(String userName, String password);
	
	//判断用户是否存在
    boolean isExistUser(String userName);

    /**
     * 标题：increaseLoginCount <br/>
     * 作用： 增加登录登录次数    <br/>
     * @author developer-lushuifa
     * @param id
     * @since JDK 1.6
     */
	int increaseLoginCount(int id);

	/**
	 * 说明: 更新登录信息<br>
	 * 编写者:lushuifa
	 * 创建时间:2016年10月17日 下午11:07:02 </pre>
	 * @param 
	 * @return int 说明
	 */
	void updateLoginInfo(AdminUser adminUser);

	/**
	 * 删除多个管理员信息
	 * @param id
	 * @return
	 */
	boolean delAdminUser(String ids);

	/**
	 * 说明:修改密码 <br>
	 * 编写者:lushuifa
	 * 创建时间:2016年10月23日 下午4:30:05 </pre>
	 * @param 
	 * @return ResponseData 说明
	 */
	ResponseData updatePassword(Map<String, String> paramMap);

    /**
     * 分页获取管理员列表数据
     * @param adminForm
     * @return
     */
	PageView<AdminUser> getAdminListByPage(AdminForm adminForm);

	/**
	 * 更新或者保存管理员信息
	 * @param adminUser
	 * @return
	 */
	ResponseData saveOrUpdateAdminUser(AdminUser adminUser);

	/**
	 * 统计代办事项
	 * @param adminId
	 * @param adminUUID
	 * @return
	 */
	TodoListCountDTO queryTodoListCount(int adminId, String adminUUID);

	/**
	 * 说明:重置管理员密码 <br>
	 * 编写者:lushuifa
	 * 创建时间:2017年11月9日 上午12:01:25 </pre>
	 * @param 
	 * @return boolean 操作是否成功
	 */
	boolean resetPassword(String ids);

	/**
	 * 说明: 通过手机号查询管理员信息 <br>
	 * 编写者:lushuifa
	 * 创建时间:2018年8月3日 下午11:49:27 </pre>
	 * @param 
	 * @return AdminUser 说明
	 */
	AdminUser queryAdminInfoByMobile(String mobile);

	/**
	 * 说明: 根据uuid获取管理员信息<br>
	 * 编写者:lushuifa
	 * 创建时间:2018年4月16日 下午11:24:00 </pre>
	 * @param 
	 * @return AdminUser
	 */
	AdminUser getAdminUserByUUID(String uuid);
}

